/*
 * Copyright (c) 2009.
 */

package kz.home.db;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.*;

/**
 * Created by IntelliJ IDEA.
 * User: danik
 * Date: 12.07.2009
 * Time: 0:10:35
 * To change this template use File | Settings | File Templates.
 */
public class DBTest extends MIDlet {
    protected RecordStore rs = null;
    protected int id;  // ID записи

    protected void startApp() throws MIDletStateChangeException {
        initDB();

        addToDB();
        readFromDB();
        closerDB();
    }

    private void readFromDB() {
        byte[] data = new byte[100];

        try {
            int numBytes = rs.getRecord(id, data, 0);
        } catch( ArrayIndexOutOfBoundsException e ){
            // запись не помещается в переданный массив
        } catch( InvalidRecordIDException e ){
            // записи с таким ID не существует
        } catch( RecordStoreNotOpenException e ){
            // record store была закрыта
        } catch( RecordStoreException e ){
            // другие ошибки
        }
    }

    private void addToDB() {
        byte[] data = new byte[2];

        data[0] = 0;
        data[1] = 1;

        try {
            id = rs.addRecord(data, 0, data.length);
        } catch( RecordStoreFullException e ){
            // данные не умещаются в памяти
        } catch( RecordStoreNotOpenException e ){
            // record store была закрыта
        } catch( RecordStoreException e ){
            // другие ошибки
        }
    }

    private void closerDB() {
        try {
            rs.closeRecordStore();
        }
        catch( RecordStoreNotOpenException e ){
            // уже закрыта
        }
        catch( RecordStoreException e ){
            // какие-то другие ошибки
        }
    }

    private void initDB() {

        try {
            rs = RecordStore.openRecordStore("mydata", false);
        }
        catch( RecordStoreNotFoundException e ){
            // не существует
            e.printStackTrace();
        }
        catch( RecordStoreException e ){
            // какие-то другие ошибки
            e.printStackTrace();
        }
    }

    protected void pauseApp() {

    }

    protected void destroyApp(boolean b) throws MIDletStateChangeException {

    }
}
